Ensure you have Centos 7 and upgrade the system with the following:
yum upgrade -y
We need to install the basic PHP features for the server:
yum install mysql-server httpd php php-gd php-cli php-mysql gcc make wget tar gzip which nano screen pdo php-pdo_mysql curl openssl amp php-imap son ldap libxml php-mailparse php-mbstring php-mcrypt simplexml zlib unzip zip -y
We then need to install the two repositories we need to get PHP 7.1, first let's get to the repos folder:
cd /etc/yum.repos.d/
EPEL: yum install epel-release -y
REMI: rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
We then need to install to PHP 7.4, simple run:
yum --enablerepo=remi-php74 install php
Now for Blesta we need some extra PHP functions, to get them we just run:
yum install php-gd php-imap php-gmp php-libxml php-pecl-mailparse php-mbstring php-mcrypt php-simplexml php-zlib -y
We now need to install Ioncube as Blesta requires this for the 3 encrypted files, to do so we've got an easy to use script:
wget -N -4 https://cdn.atlanical.uk/downloads/ioncube.sh;chmod 700 ./ioncube.sh;./ioncube.sh auto
Next we need to disable SELinux (Security-Enhanced Linux):
nano /etc/selinux/config
and if that fails use: cd /etc/selinux/ && nano config
and then ensure it is disabled by SELINUX=disabled
We now need to set-up Mod_Rewrite this allows us to get friendly links on Blesta and not index.php/plugins/ or index.php/admin/
nano -w /etc/httpd/conf/httpd.conf
Find (Ctrl + W): <Directory "/var/www/html">
Find AllowOverride None
and set it to: AllowOverride All
Now we need to reboot Apache to load our changes:
service httpd restart
Now for the MySQL we recommend MariaDB so let's install that:
sudo yum install mariadb-server mariadb -y
After we need to start MariaDB:
systemctl start mariadb;systemctl enable mariadb;
If you get an error like the following:
Downloading packages:
warning: /var/cache/yum/x86_64/7/mariadb/packages/MariaDB-10.1.18-centos7-x86_64-shared.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY
Retrieving key from https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
GPG key retrieval failed: [Errno 14] curl#60 - "Peer's Certificate has expired."
Please run: rpm --import http://yum.mariadb.org/RPM-GPG-KEY-MariaDB
Now we need to get Blesta installed so to do that we need to make a database.
Log into MySQL:
mysql -u root
Create a database:
CREATE DATABASE blesta;
Create a user:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'Your_password_here';
Connect the user to the database so the user can log in:
GRANT ALL PRIVILEGES ON blesta.* TO 'username'@'localhost' IDENTIFIED BY 'Your_password_here';
Now we need to flush the privileges and exit MySQL:
FLUSH PRIVILEGES;
and exit
Now grab the latest Blesta files: https://account.blesta.com/client/plugin/download_manager/client_main/
Go into the html folder:
sudo cd /var/www/html/
Download the version (currently 5.0.4):
sudo wget -N https://account.blesta.com/client/plugin/download_manager/client_main/download/180/blesta-5.0.4.zip
Unzip the zip:
sudo unzip blesta-5.0.4.zip
Now we need to sort the files out, firstly let's move the files to the folder for Blesta:
sudo \cp -rf ./blesta/* ./
Now we need to apply the PHP 7.1 hot-fix:
sudo \cp -rf ./hotfix-php71/blesta/app/* ./app/
Now set the permissions for the files:
sudo \chown -R apache: ./*
Now it's time to delete the empty & Un-needed files / folders:
sudo rm -rf ./blesta
sudo rm -rf ./blesta-5.0.4.zip
sudo rm -rf ./README.md
sudo rm -rf ./LICENSE
Next we need to set-up the cron job for Blesta.
We need to get the cron job editor using Nano and not Vim (Professional and pain in the... editor):
sudo export VISUAL=nano;
Now we need to log into the cron job as the root user:
sudo crontab -e -u apache
Then add the cron task:
*/5 * * * * /usr/bin/php /var/www/html/index.php cron
Finally we need to allow the port to be accessed and reboot the server.
systemctl start firewalld.service && firewall-cmd --zone=public --add-port=80/tcp --permanent && firewall-cmd --reload && systemctl enable httpd && systemctl start httpd.service